<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        /**
         * then  指定成功和失败的回调
         * catch 用来指定promise失败的回调
         * 
         * 一般会用then只指定成功的回调，在最后使用catch指定失败的回调
         * 
         * catch 为什么可以在最后，对错误进行捕获处理，因为异常穿透，异常为什么能穿透，因为then指定的默认的失败回调函数，可以将失败的promise状态和失败的结果传递 
         */

        let p = new Promise((resolve, reject)=>{
            // resolve('ok');
            reject('err');
        })
        // p.then(value=>{
        // },reason=>{
        //     console.log('reason', reason);
        // })
        // .then()
        // .then(value=>{
        //     console.log(value);
        // })
        p.then(value=>{

        })
        .then(value=>{

        }).catch(reason=>{
            console.log('catch reason: ', reason);
        })
        
    </script>
</body>
</html>